package com.iepacj.concurrency.ch4.two;

/**
 * Created by iEpac on 16/4/23.
 *
 * 线程间通信
 *
 * 线程开始运行,拥有自己的栈空间
 * 可以让多个线程相互配合完成工作
 *
 * Java支持多个线程同时访问同一个对象的或者对象的成员变量, 每个线程拥有这个变量的拷贝
 * 虽然对象以及成员变量分配的内存是在共享内存中的, 但是每个线程可以拥有一份拷贝
 * 目的是加速程序的运行. 所以程序在执行过程中, 一个线程看到的变量不一定是最新的
 *
 * volatile用来修饰变量, 告知程序任何对这个变量的访问都要通过共享内存中获取
 * 对他的改变必须同步刷新回共享内存. 能保证所有线程对这个变量访问的可见性
 *
 * synchronized关键字可以修饰方法或者代码块, 只要确保多个线程在同一时刻,
 * 只能有一个线程处于方法或者同步块中. 保证了线程对变量访问的可见性和排他性`
 */
public class Synchroized {
}
